package com.wxb.qd.service;

import com.wxb.qd.common.PageResult;
import com.wxb.qd.dto.CurrentPage;
import com.wxb.qd.dto.CustomData;
import com.wxb.qd.entity.Aerodata;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
* @author 12796
* @description 针对表【aerodata】的数据库操作Service
* @createDate 2024-03-03 17:08:40
*/

@Service
public interface AerodataService extends IService<Aerodata> {
    /**
     * 通过id获取气动数据
     * @param aerodata 气动数据类
     * @return 气动数据
     */
    Aerodata getAeroDataById(Aerodata aerodata);

    /**
     * 查找某些特征数据
     * @param aerodata 含有特征的数据
     * @return 拥有这些特征的数据
     */
    List<Aerodata> getAeroDataBy(Aerodata aerodata);

    /**
     * 分页查询
     * @param currentPage 页数和每页数量
     * @return 列表
     */
    PageResult<Aerodata> getAeroDataByPage(CurrentPage currentPage);

    /**
     * 分页查询可共享数据
     * @param currentPage 页数和每页数量
     * @return 列表
     */
    PageResult<Aerodata> getAeroDataByPageShare(CurrentPage currentPage);


    /**
     * 分页查询当前用户所有数据
     * @param currentPage 页数和每页数量
     * @return 列表
     */
    PageResult<Aerodata> getAeroDataByPageUser(CurrentPage currentPage,HttpServletRequest request);

    /**
     * 添加数据
     * @param aerodata 气动数据
     * @return 添加的新数据的id
     */
    int addAeroData(Aerodata aerodata);

    /**
     * 删除气动数据
     * @param aerodata 气动数据
     * @return 是否删除成功
     */
    boolean deleteAeroData(Aerodata aerodata);

    /**
     * 读取excel
     * @return 是否读取成功
     */
    Boolean readExcel(MultipartFile file,String id);

    /**
     * 更新气动数据，
     * @param aerodata 需要更新的气动数据
     * @return 更新是否成功
     */
    boolean updateAeroData(Aerodata aerodata);

    /**
     * 添加用户自定义数据，
     * @param customData 需要添加的自定义数据内容和该气动数据id
     * @return 更新是否成功
     */
    boolean addCustomData(CustomData customData);
    /**
     * 转换为json
     * @return 是否转换成功
     */
    boolean toJson(Aerodata aerodata);



}
